import { mapState } from 'vuex'
import store from "@/store"

let $uStoreKey = {};
// 尝试将用户在根目录中的用户数据store/modules/user.js的vuex的state变量，全部加载到全局变量中
// 如需注入额外module 直接在mapModules中追加module名称
const mapModules = ['user'];
try{
	// 注入用户相关数据  其他modules state 按需单独引入
	const keys = mapModules.map( module => {
		return {
			module: module,
			keys: Object.keys(store.state?.[module] ?? {})
		}
	})
	keys.forEach(item => {
		if (item.keys.length) {
			item.keys.forEach(key => {
				$uStoreKey[key] = (state) => state[item.module]?.[key] ?? ''
			})
		}
	})
}catch(err){
	console.log(`注入vuex state 失败`, JSON.stringify(err))
}

module.exports = {
	computed: {
		// 将user的state中的所有变量，解构到全局混入的mixin中
		...mapState($uStoreKey)
	}
}